package dayOOP0718;

public class TestInner2 {
    int age=6;
    public void test2(){
        System.out.println(222);
    }

    //成员内部类: 类体中,方法外.   只给它所属的外部类使用(其他类中不使用此内部类)
    class  Inner{
        int a=4;
        public void p(){
            //1.成员内部类可以直接访问外部类的成员变量
            System.out.println(age);//成员内部类中:默认有一个外部类的引用:  外部类名.this
            System.out.println(TestInner2.this.age);
            //成员内部类可以直接访问外部类的成员方法
            test2();
            TestInner2.this.test2();
        }
    }

    public void test3(){
        //2.在外部类的非静态方法中,可以直接创建成员内部类的对象
        Inner i=new Inner();
        System.out.println(i.a);
        i.p();
    }


    public static void main(String[] args) {
        //3.在静态方法中或在其他类中创建成员内部类对象:
        // 先创建外部类对象,  然后创建内部类对象(创建内部类对象时new前边写外部类对象名)
        TestInner2 t=new TestInner2();
        Inner i=t.new Inner();
    }

}

